The present invention relates generally to interface devices for allowing humans to interface with computer systems, and more particularly to low-cost computer interface devices that allow computer systems to provide haptic feedback to the user.
Haptic feedback interface devices are currently available to interface a person with a host computer device such as a personal computer, game console, portable computer, or other type of computer. Several different types of consumer level haptic feedback devices are available, including joysticks, mice, steering wheels, gamepads, etc. The computer displays a graphical environment such as a game, graphical user interface, or other program and the user controls a graphical object or other aspect of the graphical environment by inputting data using the interface device, typically by moving a manipulandum or xe2x80x9cuser manipulatable objectxe2x80x9d such as a joystick handle or steering wheel. The computer also may output haptic feedback information to the interface device which controls the device to output haptic feedback to the user using motors or other actuators on the device. The haptic feedback is in the form of vibrations, spring forces, textures, or other sensations conveyed to the user who is physically grasping or otherwise contacting the device. The haptic feedback is correlated to events and interactions in the graphical environment to convey a more immersive, entertaining, and functional environment to the user. In some interface devices, kinesthetic feedback is provided, while others may provide tactile feedback; these are collectively and generally referenced herein as xe2x80x9chaptic feedback.xe2x80x9d
In most commercially available haptic feedback interface devices, the goal has been to reduce the processing loading on the host computer by offloading as much of the processing as possible to the device itself. Thus, while haptic feedback devices may have significant differences, most of the more sophisticated devices share a common feature: a local microcontroller on the device that is able to compute and output forces as directed by high-level commands from the host computer. These dual-architecture systems produce very high quality haptic feedback output while presenting a minimal processing load on the host system.
However, in order to achieve these capabilities on the device, there is a price to pay. The force computations that are required to generate the output can be computationally expensive operations. As a result, the microcontroller that is embedded in the interface device needs to be sufficiently powerful in order to handle this processing. The end result is that the device microcontroller is expensive and the completed interface products have a significant cost to consumers. While this extra cost is bearable when the market for these devices is new, the cost of these consumer devices is constantly being driven to lower levels as the market continues to mature.
In order to reduce the processing power (and thereby the cost) of the device microcontroller and maintain the product quality level, other alternate solutions should be explored.
The present invention is directed to a hybrid haptic feedback system in which a host computer and haptic feedback device can share processing loads to various degrees in the output of haptic sensations, and is also directed to features for efficient output of haptic sensations in such a system.
More particularly, a haptic feedback interface device in communication with a host computer includes a user manipulatable object physically contacted and moveable by a user, an actuator outputting forces felt by the user, a sensor detecting motion of the user manipulatable object, and a device microcontroller outputting force values to the actuator to control the forces and receiving sensor signals. The microcontroller determines a closed loop force value based at least in part on a sensor signal and outputs the closed loop force value to the actuator. The microcontroller does not compute open loop force values but instead receives open loop force values from the host computer and directs the these force values to the actuator. Preferably, the open loop force values are primarily based on time, such as periodic forces, and are computed on the host computer. The closed loop forces, such as springs and damping forces, are based on user object position or motion and are computed on the local microcontroller. The open loop force values can be received from the host over a streaming serial communication channel.
Other features allow the microcontroller to extrapolate a force value or output a previously received force value if a force value received from the host is corrupted or missing; or to terminate an output force if a time from receiving host force values reaches a predetermined length. An emulator layer on the host which computes force values can emulate a haptic feedback device so that a host application program or other host layer sends a command as if it were sending the command to the haptic feedback device. A streaming channel of force values can be kept continuously full of streaming data by providing a transfer request to a communication driver on the host while the communication driver is outputting data from a previous transfer request to the device. Force values can be stored by the host and retrieved to be output as repeating force values.
In another aspect of the present invention, a method for providing haptic feedback functionality on a host computer in a hybrid system includes receiving on a driver of the host computer a command provided by an application program to provide a force effect having a type. Based on the type of force effect, information derived from the command is either directed to the haptic feedback device so the device computes a force value from the information, or information derived from the command is stored in memory of the host and a force value is computed using the driver, where the driver provides the computed force value to the haptic feedback device. The force value is output as a force by the haptic feedback device to a user of the haptic feedback device. In one embodiment, the type is either open loop or closed loop, where the force value from the closed loop effect is computed by the haptic feedback device and the force value from the open loop effect is computed by the driver. The driver can emulate a haptic feedback device so that the application program is ignorant of any division in computation of forces. The driver can select a particular period of sending information to the device based on a processing burden on the host computer or device or communication bandwidth.
In another aspect of the present invention, a force feedback interface device includes a user manipulatable object, an actuator outputting forces felt by the user, a sensor detecting motion of the user manipulatable object, and a device microcontroller determining a force value of a high frequency open loop effect based at least in part on a command received from the host computer. The microcontroller does not determine force values for low frequency open loop effects and instead receives the low frequency open loop force values from the host. The microcontroller directs all open loop force values to the actuator. The low frequency open loop force values preferably describe an effect having a frequency under a threshold frequency, and high frequency open loop values are for an effect having a frequency over the threshold frequency. The open loop force values can define vibration force effects. Similar or other embodiments allow the microcontroller to determine closed loop force values based at least in part on sensor signals describing a position or motion of the user manipulatable object, where the microcontroller does not determine low frequency open loop force values and receives low frequency open loop force values from the host computer to be output by the actuator.
The present invention advantageously provides a hybrid haptic feedback system that allows the processing burden to be shared between device and host to different degrees depending on the needs of the system designer or producer. The greater the processing burden the host takes on, the less expensive the device can be made; various features of the present invention allow the host to take on a greater processing burden than allowed by existing dual-architecture haptic feedback systems yet maintain quality haptic feedback.
These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following specification of the invention and a study of the several figures of the drawing.